IB/FB - zjisteni, zda bezi server - nekde v siti
Otázka od: js-delphi@email.cz
4. 8. 2004 9:08
Ahoj panove!
Mam dotaz viz %subjekt%. Umim zjistit pomoci hledani urciteho okna, jestli bezi
IB/FB server na pocitaci, na kterem to testuji, ale ted bych potreboval nejak
zjistit, zda na urcitem jmene stanice bezi IB/FB server.
Diky za pomoc.
Jirka
P.S.:Konkretni priklad by byl super, urcite ho vyuzijou i ostatni...
--------------------------------------------------
Ing. Jiri Sokol; jiri.sokol@seznam.cz; 972 231 187
D6Prof+SP3; WinXPProf+SP1; FB 1.5
programator amater
Odpovedá: Milan Tomes
4. 8. 2004 9:47
const
IBServerPort = 3050;
function IBServerRunning(AServerName: string): boolean;
var
Sock: TTCPBlockSocket;
begin
Sock := TTCPBlockSocket.Create;
try
Sock.CreateSocket;
Sock.Connect(AServerName, IntToStr(IBServerPort));
Result := Sock.LastError = 0;
Sock.CloseSocket;
finally
freeAndNil(Sock);
end;
end;
Je to udelane pomoci Synapse a podle postupu, ktery doporucoval P. Cisar.
HTH
S pozdravem
Milan Tomes
> [mailto:delphi-l-owner@clexpert.cz]On Behalf Of js-delphi@email.cz
> Sent: Wednesday, August 04, 2004 10:05 AM
>
> ale ted bych potreboval nejak zjistit, zda na urcitem jmene
> stanice bezi IB/FB server.
Odpovedá: Lukas Gebauer
4. 8. 2004 9:21
> const
> IBServerPort = 3050;
>
> function IBServerRunning(AServerName: string): boolean;
> var
> Sock: TTCPBlockSocket;
> begin
> Sock := TTCPBlockSocket.Create;
> try
> Sock.CreateSocket;
> Sock.Connect(AServerName, IntToStr(IBServerPort));
> Result := Sock.LastError = 0;
> Sock.CloseSocket;
> finally
> freeAndNil(Sock);
> end;
> end;
male doplneni... volani Sock.CreateSocket neni treba. Pokud socket
neexistuje, vytvori se sam pri volani metody Connect. To proto, ze az
podle patrametru v metode Connect Synapse teprve pozna, jestli chces
komunikovat pomoci protokolu IPv4 nebo pomoci IPv6.
Ne, ze by tvuj kod byl spatne, nebo fungoval jinak... jen volas
zbytecne funkci, ktera v tvem pripade neudela vubec nic, a je tam jen
pro zpetnou kompatibilitu se starymi verzemi Synapse.
(Ostatne, ten CloseSocket se taky zavola sam v destruktoru.
--
Lukas Gebauer.
E-mail: gebauerl@mlp.cz
http://www.ararat.cz/synapse/ - Ararat Synapse - TCP/IP Lib.
Odpovedá: Milan Tomes
4. 8. 2004 9:49
No ja jsem tuhle funkci psal v dobe, kdy to Synapse nedelala automaticky
S pozdravem
Milan Tomes
> [mailto:delphi-l-owner@clexpert.cz]On Behalf Of Lukas Gebauer
> Sent: Wednesday, August 04, 2004 10:21 AM
>
> male doplneni... volani Sock.CreateSocket neni treba. Pokud socket
> neexistuje, vytvori se sam pri volani metody Connect. To proto, ze az